﻿using System.Collections.Generic;
using System.Threading.Tasks;
using System.Threading;
using SIG.Model.Case;

namespace SIG.Service.Case
{
    public interface IWorkService : IEntityService<Work>
    {
        Task<IList<Work>> GetActiveElementsAync(CancellationToken cancellationToken = default(CancellationToken));
        Work GetWorkDetail(int id);
        List<Work> GetPagedActiveElements(int pageIndex, int pageSize, string keyword, int? typeId, int? solutionId, out int totalCount);
        List<Work> GetPagedElements(int pageIndex, int pageSize, string keyword, int? typeId, out int totalCount);
        IEnumerable<Work> RecommendWorks(int count);
        IEnumerable<Work> LatesterWorks(int count);
        IEnumerable<Work> LatesterWorks(int count, int typeId);
    }
}
